package com.chen.domain;

import com.chen.annotation.Excel;
import com.chen.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

/**
 * 产品对象 product
 *
 * @date 2021-08-30
 */
@ApiModel("产品对象实体")
public class RedisProduct extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 产品id
     */
    @ApiModelProperty(value = "产品主键")
    private Long productId;

    /**
     * 产品类型 BD 变电  SD 输电
     */
    @ApiModelProperty(value = "产品类型 BD 变电  SD 输电")
    @Excel(name = "产品类型", readConverterExp = "BD=变电,SD=输电")
    private String productType;

    /**
     * 产品名称
     */
    @ApiModelProperty(value = "名称")
    @Excel(name = "名称")
    private String name;

    /**
     * 产品类型 RJ 软件  YJ 硬件
     */
    @ApiModelProperty(value = "产品类型-软件硬件")
    @Excel(name = "产品类型-软件硬件")
    private String type;

    /**
     * 产品简介
     */
    @ApiModelProperty(value = "产品类型-产品简介")
    @Excel(name = "产品简介")
    private String introduction;

    /**
     * 菜单类型
     */
    @ApiModelProperty(value = "菜单类型（1.项目2.产品3.目录4.版本5.子版本）")
    @Excel(name = "菜单类型")
    private String menuType;

    @ApiModelProperty(value = "父节点id组合")
    private String code;
    /**
     * 父节点id
     */
    @ApiModelProperty(value = "父节点id")
    @Excel(name = "父节点id")
    private Long parentId;

    /**
     * 发布时间
     */
    @ApiModelProperty(value = "发布时间", example = "2023-07-26 00:00:00")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间")
    private Date releaseTime;

    @ApiModelProperty(value = "版本类型（0.全量，1：基线）")
    @Excel(name = "版本类型")
    private String versionType;

    /**
     * 版本号
     */
    @ApiModelProperty(value = "版本号")
    @Excel(name = "版本号")
    private String versionNumber;

    /**
     * 版本号
     */
    @ApiModelProperty(value = "版本号第一段")
    @Excel(name = "版本号第一段")
    private String v1;
    /**
     * 版本号
     */
    @ApiModelProperty(value = "版本号第二段")
    @Excel(name = "版本号第二段")
    private String v2;
    /**
     * 版本号
     */
    @ApiModelProperty(value = "版本号第三段")
    @Excel(name = "版本号第三段")
    private String v3;
    /**
     * 版本号
     */
    @ApiModelProperty(value = "版本号第四段")
    @Excel(name = "版本号第四段")
    private String v4;
    /**
     * 版本号
     */
    @ApiModelProperty(value = "版本号第五段")
    @Excel(name = "版本号第五段")
    private String v5;

    /**
     * 操作系统 1.windows 2.linux 3.all
     */
    @ApiModelProperty(value = "操作系统类型 1.windows 2.linux 3.all")
    @Excel(name = "操作系统类型")
    private String operatingSystem;

    /**
     * 系统架构 1.x86 2.arm
     */
    @ApiModelProperty(value = "系统架构 1.x86 2.arm")
    @Excel(name = "系统架构")
    private String systemArchitecture;

    /**
     * 更新说明
     */
    @ApiModelProperty(value = "更新说明")
    @Excel(name = "更新说明")
    private String updateDescription;
    /**
     * 硬件需求 非必须
     */
    @ApiModelProperty(value = "硬件要求")
    @Excel(name = "硬件要求")
    private String hardwareRequirements;

    @ApiModelProperty(value = "父级productId,版本搜索使用")
    private Long rootId;

//    @ApiModelProperty(value = "关联的文档列表，业务修改，目前没有值")
//    private List<Document> documents;

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductType() {
        return productType;
    }

    public void setProductType(String productType) {
        this.productType = productType;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getMenuType() {
        return menuType;
    }

    public void setMenuType(String menuType) {
        this.menuType = menuType;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public Date getReleaseTime() {
        return releaseTime;
    }

    public void setReleaseTime(Date releaseTime) {
        this.releaseTime = releaseTime;
    }

    public String getVersionNumber() {
        return versionNumber;
    }

    public void setVersionNumber(String versionNumber) {
        this.versionNumber = versionNumber;
    }

    public String getV1() {
        return v1;
    }

    public void setV1(String v1) {
        this.v1 = v1;
    }

    public String getV2() {
        return v2;
    }

    public void setV2(String v2) {
        this.v2 = v2;
    }

    public String getV3() {
        return v3;
    }

    public void setV3(String v3) {
        this.v3 = v3;
    }

    public String getV4() {
        return v4;
    }

    public void setV4(String v4) {
        this.v4 = v4;
    }

    public String getV5() {
        return v5;
    }

    public void setV5(String v5) {
        this.v5 = v5;
    }

    public String getOperatingSystem() {
        return operatingSystem;
    }

    public void setOperatingSystem(String operatingSystem) {
        this.operatingSystem = operatingSystem;
    }

    public String getSystemArchitecture() {
        return systemArchitecture;
    }

    public void setSystemArchitecture(String systemArchitecture) {
        this.systemArchitecture = systemArchitecture;
    }

    public String getUpdateDescription() {
        return updateDescription;
    }

    public void setUpdateDescription(String updateDescription) {
        this.updateDescription = updateDescription;
    }

    public String getHardwareRequirements() {
        return hardwareRequirements;
    }

    public void setHardwareRequirements(String hardwareRequirements) {
        this.hardwareRequirements = hardwareRequirements;
    }

//    public List<Document> getDocuments() {
//        return documents;
//    }
//
//    public void setDocuments(List<Document> documents) {
//        this.documents = documents;
//    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getVersionType() {
        return versionType;
    }

    public void setVersionType(String versionType) {
        this.versionType = versionType;
    }

    public Long getRootId() {
        return rootId;
    }

    public void setRootId(Long rootId) {
        this.rootId = rootId;
    }
}
